package top.suven.base.user.service;

import top.suven.base.http.exception.SystemRuntimeException;
import top.suven.base.user.dto.request.UserDataRequestDto;
import top.suven.base.user.dto.response.UserDataAndUserResponseDto;
import top.suven.base.user.dto.response.UserDataResponseDto;

/**
 * @ClassName:
 * @Description:
 * @Author liulu
 * @Date 2018/5/17 16:40
 * @Copyright: (c) 2018 gc by https://www.gc.com.cn/
 * @Version : 1.0.0
 */
public interface UserDataService {

    /**
     * @Title:
     * @Description: 根据手机imei查询用户信息个数
     * @param
     * @return
     * @author liulu
     * @date 2018/5/17 16:41
     */
    public int selectCountByImei(UserDataRequestDto dto) throws SystemRuntimeException;

    /**
     * @Title:
     * @Description: 保存用户信息
     * @param
     * @return
     * @author liulu
     * @date 2018/5/24 10:15
     */
    public void saveUserData(UserDataRequestDto dto) throws SystemRuntimeException;

    /**
     * @Title:
     * @Description: 根据用户id查询用户信息
     * @param
     * @return
     * @author liulu
     * @date 2018/5/28 11:43
     */
    public UserDataResponseDto selectByUserId(long userId) throws SystemRuntimeException;

    /**
     * @Title:
     * @Description: 修改用户信息中的imei和mac
     * @param
     * @return
     * @author liulu
     * @date 2018/5/28 11:44
     */
    public boolean updateUserDataImeiAndMac(UserDataRequestDto dto) throws SystemRuntimeException;

    /**
     * @Description: 查询用户数据和绑定号码
     * @param  userId
     * @return UserDataResponseDto
     * @author xiexiaodong
     * @date 2018/7/3 下午6:13 
     */
    UserDataAndUserResponseDto getUserDataAndBindPhone(long userId) throws SystemRuntimeException;

    /**
     * @Description: 购买SVIP保存退款信息
     * @param dto
     * @return
     * @author xiexiaodong
     * @date 2018/8/29 下午4:21
     */
    void updateBuySVIP(UserDataRequestDto dto) throws SystemRuntimeException;
}
